package DesignPattern.Adapter;

/**
 * @Author self
 * @Date 2024/8/12 20:48
 */
/*适配器模式（Adapter Pattern）是一种结构型设计模式，它使得原本由于接口不兼容而不能一起工作的类可以协同工作。
        适配器模式通过将一个类的接口转换成客户端希望的另一个接口，实现了类之间的兼容性。

        下面是一个使用适配器模式的 Java 示例，模拟一个音频播放器可以播放多种格式的音频文件，而通过适配器来支持更多格式。*/

/*优点
        不修改现有类：通过适配器模式，可以在不修改现有类的情况下，为其增加新功能。
        高扩展性：适配器模式可以很容易地扩展，以支持更多的文件格式，只需在适配器类中添加新的处理逻辑即可。
        解耦合：客户端代码与具体的实现类解耦，只与适配器接口 MediaPlayer 交互。
适用场景
        当你希望复用一个现有的类，但它的接口不符合你的需求时，可以使用适配器模式。
        当你需要将一个已有类的接口转换成客户希望的另一个接口时，适配器模式是一个好的选择。*/
public class AdapterPatternDemo {
    public static void main(String[] args) {
        MediaPlayer mediaPlayer = new MediaAdapter("vlc");
        mediaPlayer.play("vlc", "example.vlc");

        mediaPlayer = new MediaAdapter("mp4");
        mediaPlayer.play("mp4", "example.mp4");

        mediaPlayer = new MediaAdapter("mp3");
        mediaPlayer.play("mp3", "example.mp3");

        mediaPlayer = new MediaAdapter("avi");
        mediaPlayer.play("avi", "example.avi");
    }
}


